package com.example.speeddating.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.speeddating.common.BaseResponse;
import com.example.speeddating.dto.MatchDto;
import com.example.speeddating.entity.FriFolFan;
import com.example.speeddating.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author tina
 * @since 2023-06-28 11:14:34
 */
public interface UserService extends IService<User> {

    public User selectByUserId(Long userId);

    public User selectByUserId(Long userId,Long curUser);

    public User selectByUserOpenid(String userOpenid);

    public User insert(User newUser);

    Page<User> selectFriendList(Page<User> userPage,Long userId);

    Page<User> selectFollowList(Page<User> userPage,Long userId);

    FriFolFan selectFansList(Page<User> userPage, Long userId);

    Page<User> seenOtherList(Page<User> userPage,Long userId);

    FriFolFan seenMeList(Page<User> userPage,Long userId);

    int updateUser(User user);

    User registerByEmail(String email,String emailCode,String password);

    User loginByEmail(String email, String password);

    HashMap<String, Boolean> selectEverydayTask(Long id);

    Page<User> selectAllUser(Page<User> userPage);

    Page getUserCommentLikeData(Long id,Integer pageNum,Integer pageSize);

    void updateUserStatus(Long id, Integer status);

    void deleteUserById(Long id);

    public  Page<Long> getSimilarUser(Integer pageNum,Integer pageSize,Long loginId,Integer max);

    public List<User> getUserListByIds(List<Long> ids);

    Page CosmatchUsers(Long id,Integer pageNum,Integer pageSize);

    void updateNotice(Long id, Integer noticeType);

    void updateHide(Long id, Integer hideType);

    void logOff(Long id);

    void updateReaction(Long id);

    HashMap<String, Object> getScreenNav();

    List<MatchDto>  getScreenMatch();
}
